/*
 * Implement an algorithm to find the nth to last element of a singly linked list
 */
package Chapter2;

public class Chapter2_2 {

	public int nthLastElement(MyLinkedList mll, int n)
	{
		int length = 0;
		MyLinkedListNode node;
		node = mll.Head;
		while(node != null){
			length ++;
			node = node.Next;
		}
		int iterateLength = length - n;
		if(iterateLength < 0) return 0;
		int i = 0;
		node = mll.Head;
		while(i < iterateLength)
		{
			node = node.Next;
			i++;
		}
		return node.value;
	}
	
//	public static void main(String args[])
//	{
//		MyLinkedList mll = new MyLinkedList();
//		mll.add(1);
//		mll.add(2);
//		mll.add(3);
//		mll.add(1);
//		mll.add(2);
//		mll.add(4);
//		mll.add(2);
//		Chapter2_2 test = new Chapter2_2();
//		int result = test.nthLastElement(mll, 3);
//		System.out.println(result);
//	}
}
